Skip to content

Comments

feat: setup dev environment, add topics and topic lists#1

Merged
chriswblake merged 14 commits intomainfrom
cwb-add-topic-list
Jan 29, 2026
Merged

feat: setup dev environment, add topics and topic lists#1
chriswblake merged 14 commits intomainfrom
cwb-add-topic-list

Conversation

@chriswblake
Copy link
Member

This pull request introduces the initial implementation of the OpenProficiency Python library, along with its development, testing, and packaging infrastructure. The changes establish the core data model for managing topics and topic lists, set up development container and CI workflows, and provide documentation for usage and contribution.

Core Library Implementation:

  • Added the Topic class in openproficiency/Topic.py, representing a knowledge area with support for subtopics and pretopics, including methods to add and manage them.
  • Added the TopicList class in openproficiency/TopicList.py, representing a collection of topics, with methods for adding topics, serialization/deserialization to/from JSON, and recursive handling of subtopics and pretopics.
  • Created the package initializer openproficiency/__init__.py to expose Topic and TopicList for import.

Development and Testing Infrastructure:

  • Added a .devcontainer configuration (.devcontainer/devcontainer.json and .devcontainer/postCreate.sh) for consistent local and Codespaces development environments, including Python 3.10, Docker, GitHub CLI, and VS Code extensions. [1] [2]
  • Configured a GitHub Actions workflow (.github/workflows/unit-tests.yml) to run unit tests with pytest across Python 3.10–3.14 on pull requests.
  • Added VS Code settings (.vscode/settings.json) for Python type checking and test discovery.

Packaging and Distribution:

  • Added pyproject.toml, setup.py, and MANIFEST.in to enable building and publishing the package to PyPI, specifying metadata, dependencies, and included files. [1] [2] [3]
  • Added requirements-dev.txt for development and testing dependencies.

Documentation:

  • Created a comprehensive README.md with installation instructions, usage examples for Topic and TopicList, and development guidelines.
  • Added a CONTRIBUTE.md guide detailing contribution steps, running tests locally, and publishing to PyPI.

@chriswblake chriswblake self-assigned this Jan 29, 2026
@chriswblake chriswblake merged commit fe736f7 into main Jan 29, 2026
5 checks passed
@chriswblake chriswblake deleted the cwb-add-topic-list branch January 29, 2026 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant